home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / pibterm / pibt41s2.arc / OPENFORA.MOD < prev    next >
Encoding:
Text File  |  1987-12-01  |  2.5 KB  |  59 lines

  1. (*----------------------------------------------------------------------*)
  2. (*         Open_For_Append --- Open text file for appending to end      *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. FUNCTION Open_For_Append( VAR F      : Text_File;
  6.                               F_Name : AnyStr   ;
  7.                           VAR Error  : INTEGER   ) : BOOLEAN;
  8.  
  9. (*----------------------------------------------------------------------*)
  10. (*                                                                      *)
  11. (*     Function:   Open_For_Append                                      *)
  12. (*                                                                      *)
  13. (*     Purpose:    Opens text file for append                           *)
  14. (*                                                                      *)
  15. (*     Calling Sequence:                                                *)
  16. (*                                                                      *)
  17. (*        Open_OK := Open_For_Append( VAR F      : Text_File;           *)
  18. (*                                        F_Name : AnyStr   ;           *)
  19. (*                                    VAR Error  : INTEGER ) : BOOLEAN; *)
  20. (*                                                                      *)
  21. (*           F      --- Text file to be opened                          *)
  22. (*           F_Name --- File name of text file                          *)
  23. (*           Error  --- I/O error encountered here                      *)
  24. (*                                                                      *)
  25. (*----------------------------------------------------------------------*)
  26.  
  27. VAR
  28.    Open_Ok : BOOLEAN;
  29.    F_Byte  : FILE OF BYTE;
  30.  
  31. BEGIN (* Open_For_Append *)
  32.                                    (* See if file exists or is empty.  *)
  33.                                    (* File of byte req'd for filesize. *)
  34.    ASSIGN( F_Byte , F_Name );
  35.    RESET( F_Byte );
  36.  
  37.    Error   := Int24Result;
  38.    Open_OK := ( Error = 0 );
  39.                                    (* If file exists, but is empty, *)
  40.                                    (* use REWRITE to avoid error.   *)
  41.    IF Open_OK THEN
  42.       IF ( FileSize( F_Byte ) = 0 ) THEN
  43.          Open_OK := FALSE;
  44.  
  45.    CLOSE( F_Byte );
  46.    Error := Int24Result;
  47.                                    (* Now open file as text file. *)
  48.    ASSIGN( F , F_Name );
  49.  
  50.    IF Open_OK THEN
  51.       APPEND( F )
  52.    ELSE
  53.       REWRITE( F );
  54.  
  55.    Error           := Int24Result;
  56.    Open_For_Append := ( Error = 0 );
  57.  
  58. END   (* Open_For_Append *);
  59.